﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using RN.Entidades;
using CAD.DAO;
using System.Data;

namespace RN.Componentes
{
    public class CPersonal
    {
        #region DMLS
        public static bool Insertar(Personal objProxy)
        {
            ValidationException x = new ValidationException();
            if (string.IsNullOrEmpty(objProxy.Snombre))
                x.AgregarError("Ingrese el nombre del PERSONAL");

            if (x.Cantidad > 0)
                throw x;

            DAOPersonal daoProxy = new DAOPersonal();
            return daoProxy.Insertar( objProxy.Snombre, objProxy.Icarnetidentidad1, objProxy.Itelefono1,objProxy.SDireccion,objProxy.Dfechainiciocontrato,objProxy.Dfechafincontrato,objProxy.Susuario,objProxy.SCORREOELECTRONICO1,objProxy.Scontraseña,objProxy.ICONCURRENCIA1,objProxy.LTIPORESPONSABLE1.LTIPODERESPONSABLE1)> 0;
        }
        public static bool ActualizarPERSONAL(Personal objProxy)
        {
            ValidationException x = new ValidationException();
            if (objProxy.LPERSONAL_ID1 <= 0)
                x.AgregarError("Ingrese el código");

            if (string.IsNullOrEmpty(objProxy.Snombre))
                x.AgregarError("Ingrese el nombre del PERSONAL");

            if (x.Cantidad > 0)
                throw x;

            DAOPersonal daoProxy = new DAOPersonal();
            return daoProxy.Actualizar(objProxy.LPERSONAL_ID1,objProxy.Snombre, objProxy.Icarnetidentidad1, objProxy.Itelefono1, objProxy.SDireccion, objProxy.Dfechainiciocontrato, objProxy.Dfechafincontrato, objProxy.Susuario, objProxy.SCORREOELECTRONICO1, objProxy.Scontraseña, objProxy.ICONCURRENCIA1, objProxy.LTIPORESPONSABLE1.LTIPODERESPONSABLE1);

        }
        public static bool EliminarPERSONAL(int LPERSONAL_ID1)
        {
            ValidationException x = new ValidationException();
            if (LPERSONAL_ID1 <= 0)
                x.AgregarError("Ingrese el código");

            if (x.Cantidad > 0)
                throw x;

            DAOPersonal daoProxy = new DAOPersonal();
            return daoProxy.Eliminar(LPERSONAL_ID1);
        }
        #endregion
        #region Selects
        public static List<Personal> Traer()
        {
            DAOPersonal daoProxy = new DAOPersonal();
            DataSet dtsProxy = daoProxy.TraerPersonal();

            return CargarLista(dtsProxy.Tables[0]);
        }
        public static Personal TraerXId(int LAREAS_ID1)
        {
            DAOPersonal daoProxy = new DAOPersonal();
            DataSet dtsProxy = daoProxy.TraerPersonalXId(LAREAS_ID1);


            return Cargar(dtsProxy.Tables[0].Rows[0]);
        }
        public static Personal TraerXId(string usu,string contra)
        {
            DAOPersonal daoProxy = new DAOPersonal();
            DataSet dtsProxy = daoProxy.VerificarContrasena(usu,contra);
            return CargarUSu(dtsProxy.Tables[0].Rows[0]);
        }
        public static List<Personal> TraerXNombre(string nombre)
        {
            DAOPersonal daoProxy = new DAOPersonal();
            DataSet dtsProxy = daoProxy.TraerPersonalXNombre(nombre);


            return CargarLista(dtsProxy.Tables[0]);
        }
        public static List<Personal> TraerUSUS(string usu, string contra)
        {
            DAOPersonal daoProxy = new DAOPersonal();
            DataSet dtsProxy = daoProxy.Traerlogin(usu, contra);


            return CargarListaUsu(dtsProxy.Tables[0]);
        }

        #endregion
        #region Metodos Privados
        private static List<Personal> CargarLista(DataTable tabla)
        {
            List<Personal> lstProxy = new List<Personal>();

            foreach (DataRow fila in tabla.Rows)
            {
                lstProxy.Add(Cargar(fila));
            }
            return lstProxy;
        }
        private static List<Personal> CargarListaUsu(DataTable tabla)
        {
            List<Personal> lstProxy = new List<Personal>();

            foreach (DataRow fila in tabla.Rows)
            {
                lstProxy.Add(CargarUSu(fila));
            }
            return lstProxy;
        }
        private static Personal Cargar(DataRow fila)
        {
            Personal objProxy = new Personal();
            objProxy.LPERSONAL_ID1 = Convert.ToInt32(fila["LPERSONAL_ID"]);
            objProxy.Snombre = fila["SNOMBRE"].ToString();
            objProxy.Icarnetidentidad1 = fila["SCARNETIDENTIDAD"].ToString();
            objProxy.Itelefono1 = fila["STELEFONO"].ToString();
            objProxy.SDireccion = fila["SDIRECCION"].ToString();
            //objProxy.Dfechainiciocontrato =  Convert.ToDateTime( fila["DTFECHAINICIOCONTRATO_DT"]);
          //  objProxy.Dfechafincontrato =Convert.ToDateTime(fila["DTFECHAFINCONTRATO_DT"]);
            objProxy.Susuario = fila["SUSUARIO"].ToString();
            objProxy.Scontraseña = fila["SCONTRASEÑA"].ToString();
            objProxy.LTIPORESPONSABLE1.LTIPODERESPONSABLE1 = Convert.ToInt32(fila["LTIPODERESPONSABLE"]);
          //  objProxy.ICONCURRENCIA1 = Convert.ToInt32(fila["ICONCURRENCIA"]);

            return objProxy;
        }
        private static Personal CargarUSu(DataRow fila)
        {
            Personal objProxy = new Personal();
            objProxy.LPERSONAL_ID1 = Convert.ToInt32(fila["LPERSONAL_ID"]);
            objProxy.Snombre = fila["SNOMBRE"].ToString();
            objProxy.Icarnetidentidad1 = fila["SCARNETIDENTIDAD"].ToString();        
            return objProxy;
        }
        #endregion
    }
}
